** These Stata codes are intended to replicate the Tables and Figures and figures in the following paper (see ReadMe.pdf for details).
** Park, J., Son, Y., and Angst, C., 2022. “Value of Centralized IT in Building Resilience During Crises: Evidence from U.S. Higher Education’s Transition to Emergency Remote Teaching”.



** Data Load and Variable Construction

do "Variable Construction.do"

xtset IPEDS_Code time



** Summary Statistics and Correlation Matrix

* Table 1: Summary Statistics
sum student_rating would_take_again_yes High_IT_Group High_Central_IT_Group High_DeCentral_IT_Group /// 
difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory ///
student_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid Endowment_Student Expense_Instruction_Student Expense_AcademicSupport_Student Expense_StudentService_Student


* Table A1: Correlation Matrix
corr student_rating would_take_again_yes High_IT_Group High_Central_IT_Group High_DeCentral_IT_Group /// 
difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory ///
student_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid Endowment_Student Expense_Instruction_Student Expense_AcademicSupport_Student Expense_StudentService_Student




** Main Analysis (Manuscript)

* Table 2: Impacts of IT Investment and Governance
quietly reghdfe student_rating High_Central_IT_Group after_covid c.High_Central_IT_Group#c.after_covid difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13, absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code) 
eststo table_2_1
quietly reghdfe student_rating High_Central_IT_Group High_DeCentral_IT_Group after_covid c.High_Central_IT_Group#c.after_covid c.High_DeCentral_IT_Group#c.after_covid difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13, absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code) 
eststo table_2_2
quietly reghdfe student_rating High_Central_IT_Group after_covid c.High_Central_IT_Group#c.after_covid dum_year_quarter3 dum_year_quarter5-dum_year_quarter13, absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code) 
eststo table_2_3
quietly reghdfe student_rating High_Central_IT_Group after_covid c.High_Central_IT_Group#c.after_covid difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13, noabsorb vce(cluster IPEDS_Code) 
eststo table_2_4
quietly reghdfe student_rating High_Central_IT_Group after_covid c.High_Central_IT_Group#c.after_covid difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student, absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code) 
eststo table_2_5
quietly reghdfe student_rating High_Central_IT_Group after_covid c.High_Central_IT_Group#c.after_covid difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13, absorb(i.IPEDS_Code) vce(cluster IPEDS_Code) 
eststo table_2_6

esttab table_2_* using "Tables and Figures/table_2.csv", drop(dum_year_quarter*) se b(3) r2 star(* 0.1 ** 0.05 *** 0.01) replace


* Table 4: Heterogenous Impacts of Centralized IT by Domain
quietly reghdfe student_rating after_covid c.High_IT_Management_Group#c.after_covid difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13 if Availability_IT_Domains==1, absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code) 
eststo table_4_1
quietly reghdfe student_rating after_covid c.High_Enterprise_IS_Infra_Group#c.after_covid difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13 if Availability_IT_Domains==1, absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code) 
eststo table_4_2
quietly reghdfe student_rating after_covid c.High_Communication_Infra_Group#c.after_covid difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13 if Availability_IT_Domains==1, absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code) 
eststo table_4_3
quietly reghdfe student_rating after_covid c.High_IT_Support_Group#c.after_covid difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13 if Availability_IT_Domains==1, absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code) 
eststo table_4_4
quietly reghdfe student_rating after_covid c.High_Edu_Tech_Group#c.after_covid difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13 if Availability_IT_Domains==1, absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code) 
eststo table_4_5
quietly reghdfe student_rating after_covid c.High_Security_Group#c.after_covid difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13 if Availability_IT_Domains==1, absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code) 
eststo table_4_6
quietly reghdfe student_rating after_covid c.High_Research_Computing_Group#c.after_covid difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13 if Availability_IT_Domains==1, absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code) 
eststo table_4_7
quietly reghdfe student_rating after_covid c.High_IT_Management_Group#c.after_covid c.High_Enterprise_IS_Infra_Group#c.after_covid c.High_Communication_Infra_Group#c.after_covid c.High_IT_Support_Group#c.after_covid c.High_Edu_Tech_Group#c.after_covid c.High_Security_Group#c.after_covid c.High_Research_Computing_Group#c.after_covid difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13 if Availability_IT_Domains==1, absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code)
eststo table_4_8

esttab table_4_* using "Tables and Figures/table_4.csv", drop(difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter*) se b(3) r2 star(* 0.1 ** 0.05 *** 0.01) replace


* Table 5: Empirical Extension, Organizational Size and Dissimilarity of Local Units
quietly reghdfe student_rating High_Central_IT_Group after_covid c.High_Central_IT_Group#c.after_covid difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13 if avg_Student_FTE>=9325.2, absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code) 
eststo table_5_1
quietly reghdfe student_rating High_Central_IT_Group after_covid c.High_Central_IT_Group#c.after_covid difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13 if avg_Student_FTE<9325.2, absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code) 
eststo table_5_2
quietly reghdfe student_rating High_Central_IT_Group after_covid c.High_Central_IT_Group#c.after_covid difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13 if HHI_Programs <.1116808 , absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code) 
eststo table_5_3
quietly reghdfe student_rating High_Central_IT_Group after_covid c.High_Central_IT_Group#c.after_covid difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13 if HHI_Programs >=.1116808 , absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code) 
eststo table_5_4

esttab table_5_* using "Tables and Figures/table_5.csv", drop(difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter*) se b(3) r2 star(* 0.1 ** 0.05 *** 0.01) replace ///
addnotes("Control variables are omitted for brevity.")


* Table 6: Empirical Extension, Role of CIO
quietly reghdfe student_rating High_Central_IT_Group after_covid c.High_Central_IT_Group#c.after_covid difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13 if Priority_Strategic_CIO<=5 & Priority_Strategic_CIO!=., absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code) 
eststo table_6_1
quietly reghdfe student_rating High_Central_IT_Group after_covid c.High_Central_IT_Group#c.after_covid difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13 if Priority_Strategic_CIO>5 & Priority_Strategic_CIO!=., absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code) 
eststo table_6_2
quietly reghdfe student_rating High_Central_IT_Group after_covid c.High_Central_IT_Group#c.after_covid difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13 if CIO_PresidentCabinet==1 & CIO_HighestRank==1, absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code) 
eststo table_6_3
quietly reghdfe student_rating High_Central_IT_Group after_covid c.High_Central_IT_Group#c.after_covid difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13 if CIO_PresidentCabinet==2 & CIO_HighestRank==1, absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code) 
eststo table_6_4

esttab table_6_* using "Tables and Figures/table_6.csv", drop(difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter*) se b(3) r2 star(* 0.1 ** 0.05 *** 0.01) replace ///
addnotes("Control variables are omitted for brevity.")




** Robustness Checks (Appendix B)

* Table B1: Balance Checks After Matching

* Propensity Score Matching (based on High Central IT Group)
tempfile holding
save `holding'

collapse private doctorate master with_medical High_Central_IT_Group lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student if year<=2019, by(IPEDS_Code)

quietly psmatch2 High_Central_IT_Group lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student private doctorate master with_medical, cal(0.01) n(3) logit
pstest, both

gen psm_matched_central = _weight
replace psm_matched_central = 0 if psm_matched_central==.
replace psm_matched_central = 1 if psm_matched_central>0

merge 1:m IPEDS_Code using `holding', assert(match using) keep(match) nogenerate


* Table B2: Estimation Results of the Relative Time Model with the Matched Sample
quietly reghdfe student_rating High_Central_IT_Group after_covid c.High_Central_IT_Group#c.after_covid difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13 , absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code) 
eststo table_b2_1
quietly reghdfe student_rating High_Central_IT_Group dum_year_quarter14 dum_year_quarter15 c.High_Central_IT_Group#c.dum_year_quarter15 c.High_Central_IT_Group#c.dum_year_quarter14 c.High_Central_IT_Group#c.dum_year_quarter13 c.High_Central_IT_Group#c.dum_year_quarter11 c.High_Central_IT_Group#c.dum_year_quarter10 c.High_Central_IT_Group#c.dum_year_quarter9 c.High_Central_IT_Group#c.dum_year_quarter8 c.High_Central_IT_Group#c.dum_year_quarter7 c.High_Central_IT_Group#c.dum_year_quarter6 c.High_Central_IT_Group#c.dum_year_quarter5 c.High_Central_IT_Group#c.dum_year_quarter4 c.High_Central_IT_Group#c.dum_year_quarter3 c.High_Central_IT_Group#c.dum_year_quarter2 c.High_Central_IT_Group#c.dum_year_quarter1 difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13, absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code) 
eststo table_b2_2
quietly reghdfe student_rating High_Central_IT_Group after_covid c.High_Central_IT_Group#c.after_covid difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13 if psm_matched_central ==1 , absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code) 
eststo table_b2_3
quietly reghdfe student_rating High_Central_IT_Group dum_year_quarter14 dum_year_quarter15 c.High_Central_IT_Group#c.dum_year_quarter15 c.High_Central_IT_Group#c.dum_year_quarter14 c.High_Central_IT_Group#c.dum_year_quarter13 c.High_Central_IT_Group#c.dum_year_quarter11 c.High_Central_IT_Group#c.dum_year_quarter10 c.High_Central_IT_Group#c.dum_year_quarter9 c.High_Central_IT_Group#c.dum_year_quarter8 c.High_Central_IT_Group#c.dum_year_quarter7 c.High_Central_IT_Group#c.dum_year_quarter6 c.High_Central_IT_Group#c.dum_year_quarter5 c.High_Central_IT_Group#c.dum_year_quarter4 c.High_Central_IT_Group#c.dum_year_quarter3 c.High_Central_IT_Group#c.dum_year_quarter2 c.High_Central_IT_Group#c.dum_year_quarter1 difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13 if psm_matched_central ==1, absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code) 
eststo table_b2_4

esttab table_b2_* using "Tables and Figures/table_b2.csv", drop(difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5 dum_year_quarter6 dum_year_quarter7 dum_year_quarter8 dum_year_quarter9 dum_year_quarter10 dum_year_quarter11 dum_year_quarter12 dum_year_quarter13) se b(3) r2 star(* 0.1 ** 0.05 *** 0.01) replace ///
addnotes("Control variables are omitted for brevity.")


* Table B3: Role of Centralized IT in Tandem with Transition to ERT
quietly reghdfe student_rating High_Central_IT_Group after_covid c.High_Central_IT_Group#c.after_covid difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13 if transition_ERT==1, absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code) 
eststo table_b3_1
quietly reghdfe student_rating High_Central_IT_Group High_DeCentral_IT_Group after_covid c.High_Central_IT_Group#c.after_covid c.High_DeCentral_IT_Group#c.after_covid difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13 if transition_ERT==1, absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code) 
eststo table_b3_2
quietly reghdfe student_rating High_Central_IT_Group after_covid c.High_Central_IT_Group#c.after_covid difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13 if transition_ERT==0, absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code) 
eststo table_b3_3
quietly reghdfe student_rating High_Central_IT_Group High_DeCentral_IT_Group after_covid c.High_Central_IT_Group#c.after_covid c.High_DeCentral_IT_Group#c.after_covid difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13 if transition_ERT==0, absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code) 
eststo table_b3_4

esttab table_b3_* using "Tables and Figures/table_b3.csv", drop(difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter*) se b(3) r2 star(* 0.1 ** 0.05 *** 0.01) replace ///
addnotes("Control variables are omitted for brevity.")



* Table B4: Ruling Out Alternative Explanations

quietly reghdfe student_rating High_Central_IT_Group after_covid c.High_Central_IT_Group#c.after_covid c.lnNum_Course_Student#c.after_covid lnNum_Course_Student difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13, absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code) 
eststo table_b4_1
quietly reghdfe student_rating High_Central_IT_Group after_covid c.High_Central_IT_Group#c.after_covid c.lnNum_Professor_Student#c.after_covid lnNum_Professor_Student difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13, absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code) 
eststo table_b4_2
quietly reghdfe student_rating High_Central_IT_Group after_covid c.High_Central_IT_Group#c.after_covid c.lnEndowment_Student#c.after_covid difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13, absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code) 
eststo table_b4_3
quietly reghdfe student_rating High_Central_IT_Group after_covid c.High_Central_IT_Group#c.after_covid c.lnExpense_Instruction_Student#c.after_covid difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13, absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code) 
eststo table_b4_4
quietly reghdfe student_rating High_Central_IT_Group after_covid c.High_Central_IT_Group#c.after_covid c.lnExpense_AcademicSupp_Student#c.after_covid difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13, absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code) 
eststo table_b4_5
quietly reghdfe student_rating High_Central_IT_Group after_covid c.High_Central_IT_Group#c.after_covid c.lnExpense_StudentService_Student#c.after_covid difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13, absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code) 
eststo table_b4_6

esttab table_b4_* using "Tables and Figures/table_b4.csv", drop(difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter*) se b(3) r2 star(* 0.1 ** 0.05 *** 0.01) replace ///
addnotes("Control variables are omitted for brevity.")


* Table B5: Alternative DID and DDD Models

* Propensity Score Matching (based on High IT Group)
tempfile holding
save `holding'

collapse private doctorate master with_medical High_IT_Group lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student if year<=2019, by(IPEDS_Code)

quietly psmatch2 High_IT_Group lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student private doctorate master with_medical, cal(0.01) n(4) logit
pstest, both

gen psm_matched = _weight
replace psm_matched = 0 if psm_matched==.
replace psm_matched = 1 if psm_matched>0

merge 1:m IPEDS_Code using `holding', assert(match using) keep(match) nogenerate

quietly reghdfe student_rating High_IT_Group after_covid c.High_IT_Group#c.after_covid difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13, absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code) 
eststo table_b5_1
quietly reghdfe student_rating High_IT_Group IT_Centralization c.High_IT_Group#c.IT_Centralization after_covid c.High_IT_Group#c.after_covid c.after_covid#c.IT_Centralization c.High_IT_Group#c.after_covid#c.IT_Centralization difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13, absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code) 
eststo table_b5_2
quietly reghdfe student_rating High_IT_Group after_covid c.High_IT_Group#c.after_covid difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13 if psm_matched==1, absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code) 
eststo table_b5_3
quietly reghdfe student_rating High_IT_Group IT_Centralization c.High_IT_Group#c.IT_Centralization after_covid c.High_IT_Group#c.after_covid c.after_covid#c.IT_Centralization c.High_IT_Group#c.after_covid#c.IT_Centralization difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13 if psm_matched==1 , absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code) 
eststo table_b5_4

esttab table_b5_* using "Tables and Figures/table_b5.csv", drop(difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter*) se b(3) r2 star(* 0.1 ** 0.05 *** 0.01) replace ///
addnotes("Control variables are omitted for brevity.")


* Figure B2: Impact of IT on Student Ratings After COVID-19 by Degree of IT Centralization
gen High_IT_Covid = c.High_IT_Group#c.after_covid

quietly xtreg student_rating IT_Centralization c.High_IT_Group#c.IT_Centralization after_covid c.High_IT_Covid c.after_covid#c.IT_Centralization c.High_IT_Covid#c.IT_Centralization difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13 i.IPEDS_Code#i.quarter, r fe
margins, dydx(High_IT_Covid) at(IT_Centralization=(0, 0.25, 0.5, 0.75, 1))
marginsplot, title("") xlabel(0 "0%" 0.25 "25%" 0.5 "50%" 0.75 "75%" 1 "100%") xtitle("Degree of IT Centralization") ytitle("Effects of IT After COVID-19" "(Coefficients of High IT Group x COVID-19)") plotop(color(maroon)) ciopts(color(maroon)) 
graph export "Tables and Figures/figure_b2-1.png", replace

quietly xtreg student_rating IT_Centralization c.High_IT_Group#c.IT_Centralization after_covid c.High_IT_Group#c.after_covid c.after_covid#c.IT_Centralization c.High_IT_Group#c.after_covid#c.IT_Centralization difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13 i.IPEDS_Code#i.quarter, r fe
margins, dydx(after_covid) at(IT_Centralization=(0, 0.25, 0.5, 0.75, 1) High_IT_Group=(0, 1))
marginsplot, title("") xlabel(0 "0%" 0.25 "25%" 0.5 "50%" 0.75 "75%" 1 "100%") xtitle("Degree of IT Centralization") ytitle("Effects of COVID-19" "(Coefficients of COVID-19)") plot( , label("Low IT Group" "High IT Group"))

graph export "Tables and Figures/figure_b2-2.png", replace


* Table B6: Sensitivity Tests
reghdfe would_take_again_yes High_Central_IT_Group after_covid c.High_Central_IT_Group#c.after_covid difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13, absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code) 
eststo table_b6_1
reghdfe would_take_again_yes High_Central_IT_Group High_DeCentral_IT_Group after_covid c.High_Central_IT_Group#c.after_covid c.High_DeCentral_IT_Group#c.after_covid difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13, absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code) 
eststo table_b6_2
reghdfe student_rating High_Central_IT_Group after_covid c.High_Central_IT_Group#c.after_covid difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13 if Calendarsystem==1, absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code) 
eststo table_b6_3
reghdfe student_rating High_Central_IT_Group after_covid c.High_Central_IT_Group#c.after_covid difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13 if medicaldegree==2, absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code) 
eststo table_b6_4
reghdfe student_rating High_Central_IT_Group after_covid c.High_Central_IT_Group#c.after_covid difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter3 dum_year_quarter5-dum_year_quarter13 if state!="CA"& state!="NY", absorb(i.IPEDS_Code#i.quarter) vce(cluster IPEDS_Code) 
eststo table_b6_5

esttab table_b6_* using "Tables and Figures/table_b6.csv", drop(difficulty_level grade_A_percent grade_B_percent grade_C_percent grade_D_percent grade_F_percent textbook_yes attendance_mandatory lnStudent_FTE percent_exclusive_online Percentadmitted Percentofstudentsawardedaid lnEndowment_Student lnExpense_Instruction_Student lnExpense_AcademicSupp_Student lnExpense_StudentService_Student dum_year_quarter*) se b(3) r2 star(* 0.1 ** 0.05 *** 0.01) replace ///
addnotes("Control variables are omitted for brevity.")
